Social network activity modes

ABSTRACT

A social network activity mode that is implemented using social network activity rules is identified. The social network activity rules allow only social network posts of relevance to a particular activity of a user to be presented to the user. The social network activity mode is applied to a group of social network posts. Based upon applying the social network activity mode to the group of social network posts, social network posts that comply with the social network activity rules of the social network activity mode are provided to the user and social network posts that do not comply with the social network activity rules of the social network activity mode are blocked.

BACKGROUND

The present invention relates to social network content streams. Moreparticularly, the present invention relates to social network activitymodes.

Social networks allow users to connect and communicate to create ashared user experience. A social network user may post messages to thesocial network, and other social network contacts of the social networkuser may view the posted messages. Social network users may also postphotographs, and comment on other social network users' posted messages.

BRIEF SUMMARY

A method includes identifying, via a processor, a social networkactivity mode implemented using social network activity rules that allowonly social network posts of relevance to a particular activity of auser to be presented to the user; applying the social network activitymode to a plurality of social network posts; and based upon applying thesocial network activity mode to the plurality of social network posts,both of: providing social network posts that comply with the socialnetwork activity rules of the social network activity mode to the user;and blocking social network posts that do not comply with the socialnetwork activity rules of the social network activity mode.

A system includes a memory; and a processor programmed to: identify,within the memory, a social network activity mode implemented usingsocial network activity rules that allow only social network posts ofrelevance to a particular activity of a user to be presented to theuser; apply the social network activity mode to a plurality of socialnetwork posts; and based upon applying the social network activity modeto the plurality of social network posts, both of: provide socialnetwork posts that comply with the social network activity rules of thesocial network activity mode to the user; and blocking social networkposts that do not comply with the social network activity rules of thesocial network activity mode.

A computer program product includes a computer readable storage mediumhaving computer readable program code embodied therewith, where thecomputer readable program code when executed on a computer causes thecomputer to: identify a social network activity mode implemented usingsocial network activity rules that allow only social network posts ofrelevance to a particular activity of a user to be presented to theuser; apply the social network activity mode to a plurality of socialnetwork posts; and based upon applying the social network activity modeto the plurality of social network posts, both of: provide socialnetwork posts that comply with the social network activity rules of thesocial network activity mode to the user; and block social network poststhat do not comply with the social network activity rules of the socialnetwork activity mode.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram of an example of an implementation of a systemfor social network activity modes according to an embodiment of thepresent subject matter;

FIG. 2 is a block diagram of an example of an implementation of a coreprocessing module capable of implementing social network activity modesaccording to an embodiment of the present subject matter;

FIG. 3 is a flow chart of an example of an implementation of a processfor social network activity modes according to an embodiment of thepresent subject matter;

FIG. 4A is a flow chart of an example of an implementation of initialprocessing within a process for implementing system-wide anduser-defined social network activity modes according to an embodiment ofthe present subject matter;

FIG. 4B is a flow chart of an example of an implementation of additionalprocessing within a process for implementing system-wide anduser-defined social network activity modes according to an embodiment ofthe present subject matter; and

FIG. 4C is a flow chart of an example of an implementation of furtheradditional processing within a process for implementing system-wide anduser-defined social network activity modes according to an embodiment ofthe present subject matter.

DETAILED DESCRIPTION

The examples set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

The subject matter described herein provides social network activitymodes. The technology described herein solves a problem that has beenidentified within social networks related to a lack of content controlby the social network users themselves. It was recognized that otherusers may post content and this content will be published to all socialnetwork contacts of the posting user. However, it was also recognizedthat other contacts of posting users may prefer not to receive or mayprefer to delay review of certain types of posts, such as work-relatedposts or posts that may discuss controversial topics (e.g., news,politics, etc.) from any content source while they are, for example, outof the office or on vacation. The present technology described hereinsolves this recognized problem by allowing users to define their owncontent management or activity modes that control what content isprovided to the user at times during which the user-defined activitymodes are active. The present technology provides an option to save thecontent that is blocked for later review.

The present technology operates by identifying a social network activitymode that is implemented using social network activity rules. The socialnetwork activity rules allow only social network posts of relevance to aparticular activity of a user to be presented to the user. The socialnetwork activity mode is applied to social network posts. Only socialnetwork posts that comply with the social network activity rules of thesocial network activity mode are provided to the user, while socialnetwork posts that do not comply with the social network activity rulesof the social network activity mode may be blocked.

As an alternative to blocking posts that do not comply with the socialnetwork activity modes, the social network activity modes may implementprioritization of social network posts and may prioritize posts thatcomply with the social network activity rules of the social networkactivity mode and deprioritize posts that do not comply with the socialnetwork activity rules of the social network activity mode. As such,rather than implementing a strict show/no-show filter based upon thesocial network activity modes, content that does not comply with thesocial network activity rules of the social network activity mode may beplaced at a lower location on a post viewing page. This form ofstrategic prioritization of compliant posts relative to non-compliantposts allows users to selectively scroll to and view the deprioritizedposts if the user is interested in viewing posts other than those thatare related to their active social network activity mode(s).

The remainder of the description herein primarily utilizes terminologyof the initial implementation described above for purposes of example,where only social network posts that comply with the social networkactivity rules of the social network activity mode are provided to theuser, while social network posts that do not comply with the socialnetwork activity rules of the social network activity mode may beblocked. However, it is understood that the description and examplesthat follow equally describe the second implementation described above,where posts that comply with the social network activity rules of thesocial network activity mode are prioritized relative to posts that donot comply with the social network activity rules of the social networkactivity mode, and that any differences in terminology between the twoprimary implementation options are omitted in favor of clarity ofdescription.

As such, the present technology provides a new capability of a socialnetwork activity “mode.” The social network modes include a set ofsocial network rules that may be temporarily applied to one or morecontent streams to filter or delay content delivery to a user. Theactivity modes and the underlying social network rules may be built intothe social network system/platform, and an activity rules engine may bebuilt into a user computing device or may be provided within the socialnetwork. Additionally, activity mode templates may be provided withinthe social network, and the activity modes and the underlying socialnetwork rules may be customized to define user-specific activity modesbased on a set of filters. As another alternative, using the underlyinginfrastructure in place within the social network platform, users mayfully define activity rules that comply with the activity rule engineinterface without use of a template.

For example, the present technology allows users to specify their ownuser-defined activity modes, such as a “vacation” activity mode, thatmay be active when a user is on vacation. This mode may allow the userto stay up-to-date on their personal social network activity streamswhile on vacation while providing the user with only positive contentand updates from family. Negative content from any content source may beblocked (or deprioritized) while in the vacation mode so that the usermay enjoy the vacation time without having unrelated concerns imposedupon them by the social network. Similarly, the user may specify a“work” activity mode that provides only work-related content from anycontent source during work hours (or that deprioritizes non-work-relatedcontent, such as personal content). Further, the user may specify a“personal” mode that provides only non-work-related content from anycontent source during non-work hours (or that deprioritizes work-relatedcontent). Other activity modes may include a “social” activity mode, a“political” activity mode, an “age group-related” activity mode, a“positive” activity mode, a “negative” activity mode, an “optimistic”activity mode, etc. The present technology provides a technologicalfoundation upon which users may define activity modes that are relevantto them and their interests during multiple different user activities.Many other social network activity modes are possible and all such modesare considered to be within the scope of the present technology.

Another technical feature of the present technology is integration ofthe social network activity mode capability with user applications toautomatically set the network activity mode for the user based upon theapplication and/or data within the application. For example, a user mayintegrate their calendar application with the social network to showthat the user is on vacation, and the social network may thenautomatically enter a “vacation mode” during that calendared timeperiod. Alternatively, the user may integrate the “vacation mode” with aglobal positioning system (GPS) application of a GPS-capable smartphoneto activate the vacation mode when the user is near a vacationdestination (e.g., a beach, mountains, etc.).

Activity mode suggestions may also be provided to the user, and the usermay accept or decline the suggested mode, or may further define and/orcustomize the suggested activity mode to tailor the user's socialnetwork experience to their contemporaneous preferences for content. Thesocial network activity rules engine may analyze the text of content theuser reads and/or writes to suggest an appropriate activity mode to theuser. For example, if a user typed “going on vacation!” in their statusmessage to their contacts, the social network activity rules engine maycompare the status text to available mode titles. The social networkactivity rules engine may recognize that a mode titled “vacation mode”is defined for the user and offer to activate the vacation mode for theuser. Additionally, where a user has selected and read only messagesabout an upcoming election, the social network activity rules engine mayoffer to activate a “politics mode” with related political filter rules.

Additionally, activity modes may be automatically generated for a userbased upon user behavior/activities. For example, where a user alwaysviews the news-related streams, but skips updates from contacts otherthan family members on a weekend, a behavior-based activity mode may becreated for the user.

Activity modes may also be suggested by other sources/entities, such ascampaigns (e.g, social issue campaigns, nature preservation campaigns,political campaigns, etc.). For example, a campaign organization maysend an activity mode suggestion button, such as “click here to activateour campaign mode,” and an associated activity mode may be activated forthe user responsive to a user selection of the activity mode suggestionbutton.

Multiple modes may be simultaneously activated for inclusive orexclusive content blocking (or deprioritizing). For example, the usermay choose to create a union of content from multiple sources thatallows all content from the sources to be displayed. Alternatively, theuser may choose to create an intersection of content from multiplesources that allows only content that matches filter criteria of everysource to be displayed, and that excludes content that does not meet thecriteria of every source. Logical operators may be used to combinedifferent activity modes as unions or intersections.

For example, logical criteria may be combined to implement complexactivity rules, such as a set of criteria specified as: “a contentattitude of the post is positive “AND” the content text contains any ofthe keywords defined by the user “OR” the content posting entity is afamily member.” Within this example, all content from a family memberwill be provided to the user, but other posts will be limited topositive attitude posts that include specific keywords defined by theuser (e.g., beach, sun, travel, fun, hiking, etc.). In this way, theuser may categorically include or exclude posts based upon both thecontent of the post and the originating entity of a post.

Using the multi-mode features of the present technology, users may buildnew combined activity modes based upon other existing or user-definedsocial network activity modes. For example, a user may construct a“working-vacation mode” from a work mode and a vacation mode. Again, theuser may apply inclusive or exclusive content filtering.

Users may also share custom-built activity modes with other users. Forexample, users may publish their activity modes within a social networkand provide a link to the published activity modes to other users. Theother users may review the activity mode, and reuse the activity modecreated by another user as published, or may augment the publishedactivity mode for their own preferences. The augmented activity may alsobe published, and a link to that published activity mode may be providedto the original activity mode creator and to other users. As such, anincreasing set of social network activity modes may be created andshared within a social network.

Users may also search for published activity modes based on keywords orcriteria. Users may enter search criteria related to their intendedactivity, and may receive links to published activity modes that satisfythe search criteria. Again, the user may use one of the existingactivity modes as published, or the user may augment an existingactivity mode and republish it to create a new user-defined activitymode to share within a social network.

The matching of activity modes to content may be performed using textanalytics, content tagging, or other content processing as appropriatefor a given implementation. Tagging of the activity modes may also beused to match modes with general content-based tags.

It should be noted that conception of the present subject matterresulted from recognition of certain limitations associated with socialnetwork activity streams. For example, it was observed that activitystreams in social networks make use of an increasing number of contentsource types, including friend status updates, updates from coworkers,news feeds, political communications, business marketing, coupons, andother forms of content sources. It was further recognized that, whilecertain operations within social networks may be performed to limit anumber/quantity of posts received, these operations employ anall-or-nothing approach that is applied to a particular content sourcewithout any consideration for the content of the respective posts. Assuch, it was determined that existing social network technology does notprovide a way for a user to control their own content stream filteringpreferences based upon the user's own activities. The present subjectmatter improves social network content control by users by providing forsocial network activity modes, as described above and in more detailbelow. As such, improved social network relevancy of content provided tousers based upon the user's activities may be obtained through use ofthe present technology.

The social network activity modes described herein may be performed inreal time to allow prompt definition and implementation of differentmodes of social network content filtering based upon activities of asocial network user. For purposes of the present description, real timeshall include any time frame of sufficiently short duration as toprovide reasonable response time for information processing acceptableto a user of the subject matter described. Additionally, the term “realtime” shall include what is commonly termed “near real time”—generallymeaning any time frame of sufficiently short duration as to providereasonable response time for on-demand information processing acceptableto a user of the subject matter described (e.g., within a portion of asecond or within a few seconds). These terms, while difficult toprecisely define are well understood by those skilled in the art.

FIG. 1 is a block diagram of an example of an implementation of a system100 for social network activity modes. A computing device_1 102 througha computing device_N 104 communicate via a network 106 with severalother devices. The other devices include a server_1 108 through aserver_M 110, and a database 112. Any of the computing device_1 102through the computing device_N 104 and/or the server_1 108 through theserver_M 110 may implement an activity rules engine to process thesocial network activity modes described herein. The database 112 maystore activity rule templates, configured user-specific activity rules,social network content, and other information as appropriate for a givenimplementation.

As will be described in more detail below in association with FIG. 2through FIG. 4C, the computing device_1 102 through the computingdevice_N 104 and the server_1 108 through the server_M 110 may eachprovide automated social network activity modes. The automated socialnetwork activity mode processing is based upon detection of useractivities to provide user-specific content filtering across multiplecontent streams so the user is provided with content appropriate for thedetected user activities, while delaying/deferring content that isunrelated to the detected user activities. As such, the presenttechnology may be implemented at a user computing device or serverdevice level. A variety of possibilities exist for implementation of thepresent subject matter, and all such possibilities are considered withinthe scope of the present subject matter.

The network 106 may include any form of interconnection suitable for theintended purpose, including a private or public network such as anintranet or the Internet, respectively, direct inter-moduleinterconnection, dial-up, wireless, or any other interconnectionmechanism capable of interconnecting the respective devices.

The server_1 108 through the server_M 110 may include any device capableof providing data for consumption by a device, such as the computingdevice_1 102 through the computing device_N 104, via a network, such asthe network 106. As such, the server_1 108 through the server_M 110 mayeach include a web server, application server, or other data serverdevice. One or more of the server_1 108 through the server_M 110 mayprovide social network functionality.

The database 112 may include a relational database, an object database,or any other storage type of device. As such, the database 112 may beimplemented as appropriate for a given implementation.

FIG. 2 is a block diagram of an example of an implementation of a coreprocessing module 200 capable of implementing social network activitymodes. The core processing module 200 may be associated with either thecomputing device_1 102 through the computing device_N 104 or with theserver_1 108 through the server_M 110, as appropriate for a givenimplementation. As such, the core processing module 200 is describedgenerally herein, though it is understood that many variations onimplementation of the components within the core processing module 200are possible and all such variations are within the scope of the presentsubject matter.

Further, the core processing module 200 may provide different andcomplementary processing of social network activity modes in associationwith each implementation. As such, for any of the examples below, it isunderstood that any aspect of functionality described with respect toany one device that is described in conjunction with another device(e.g., sends/sending, etc.) is to be understood to concurrently describethe functionality of the other respective device (e.g.,receives/receiving, etc.).

A central processing unit (CPU) 202 (“processor”) provides hardware thatperforms computer instruction execution, computation, and othercapabilities within the core processing module 200. A display 204provides visual information to a user of the core processing module 200and an input device 206 provides input capabilities for the user.

The display 204 may include any display device, such as a cathode raytube (CRT), liquid crystal display (LCD), light emitting diode (LED),electronic ink displays, projection, touchscreen, or other displayelement or panel. The input device 206 may include a computer keyboard,a keypad, a mouse, a pen, a joystick, touchscreen, voice commandprocessing unit, or any other type of input device by which the user mayinteract with and respond to information on the display 204.

A communication module 208 provides hardware, protocol stack processing,and interconnection capabilities that allow the core processing module200 to communicate with other modules within the system 100. Thecommunication module 208 may include any electrical, protocol, andprotocol conversion capabilities useable to provide interconnectioncapabilities, as appropriate for a given implementation. As such, thecommunication module 208 represents a communication device capable ofcarrying out communications with other devices.

A memory 210 includes an activity rules area 212 that providesprocessing and storage space for social network activity rules inassociation with the core processing module 200. As will be described inmore detail below, the social network activity rules stored within theactivity rules area 212 are used to implement the social networkactivity modes described herein.

The memory 210 also includes an application area 214 that providesstorage and execution space for one or more applications. As such, aclient-based or client-server portion of an application, such as acalendar application, a GPS application, or other applications, may beprovided in association with the core processing module 200 and may beused to perform programmatic selection and activation of social networkactivity modes.

It is understood that the memory 210 may include any combination ofvolatile and non-volatile memory suitable for the intended purpose,distributed or localized as appropriate, and may include other memorysegments not illustrated within the present example for ease ofillustration purposes. For example, the memory 210 may include a codestorage area, an operating system storage area, a code execution area,and a data area without departure from the scope of the present subjectmatter.

An activity mode processing module 216 is also illustrated. The activitymode processing module 216 provides activity rule configuration andprocessing capabilities for the core processing module 200, as describedabove and in more detail below. The activity mode processing module 216implements the automated social network activity modes of the coreprocessing module 200. As such, the activity mode processing module 216implements an activity rules engine, as described above.

It should also be noted that the activity mode processing module 216 mayform a portion of other circuitry described without departure from thescope of the present subject matter. Further, the activity modeprocessing module 216 may alternatively be implemented as an applicationstored within the memory 210. In such an implementation, the activitymode processing module 216 may include instructions executed by the CPU202 for performing the functionality described herein. The CPU 202 mayexecute these instructions to provide the processing capabilitiesdescribed above and in more detail below for the core processing module200. The activity mode processing module 216 may form a portion of aninterrupt service routine (ISR), a portion of an operating system, aportion of a browser application, or a portion of a separate applicationwithout departure from the scope of the present subject matter.

A global positioning system (GPS) module 218 provides positioninglocation coordinates usable for identifying physical locations (e.g.,vacation locations, work locations, etc.) of the core processing module200 where the core processing module 200 is integrated into, forexample, a GPS-capable smartphone, or usable for receiving andprocessing physical locations where the core processing module 200 isintegrated into a server device. As such, the GPS module 218 may be usedby the activity mode processing module 216 to programmatically selectand activate activity modes.

A timer/clock module 220 is illustrated and used to determine timing anddate information, such as to identify relevant calendar entries for usein programmatic selection of activity modes, as described above and inmore detail below. As such, the activity mode processing module 216 mayutilize information derived from the timer/clock module 220 forinformation processing activities, such as processing of social networkactivity modes.

The database 112 is again shown within FIG. 2 associated with the coreprocessing module 200. As such, the database 112 may be operativelycoupled to the core processing module 200 without use of networkconnectivity, as appropriate for a given implementation.

The CPU 202, the display 204, the input device 206, the communicationmodule 208, the memory 210, the activity mode processing module 216, theGPS module 218, the timer/clock module 220, and the database 112 areinterconnected via an interconnection 222. The interconnection 222 mayinclude a system bus, a network, or any other interconnection capable ofproviding the respective components with suitable interconnection forthe respective purpose.

Though the different modules illustrated within FIG. 2 are illustratedas component-level modules for ease of illustration and descriptionpurposes, it should be noted that these modules may include anyhardware, programmed processor(s), and memory used to carry out thefunctions of the respective modules as described above and in moredetail below. For example, the modules may include additional controllercircuitry in the form of application specific integrated circuits(ASICs), processors, antennas, and/or discrete integrated circuits andcomponents for performing communication and electrical controlactivities associated with the respective modules. Additionally, themodules may include interrupt-level, stack-level, and application-levelmodules as appropriate. Furthermore, the modules may include any memorycomponents used for storage, execution, and data processing forperforming processing activities associated with the respective modules.The modules may also form a portion of other circuitry described or maybe combined without departure from the scope of the present subjectmatter.

Additionally, while the core processing module 200 is illustrated withand has certain components described, other modules and components maybe associated with the core processing module 200 without departure fromthe scope of the present subject matter. Additionally, it should benoted that, while the core processing module 200 is described as asingle device for ease of illustration purposes, the components withinthe core processing module 200 may be co-located or distributed andinterconnected via a network without departure from the scope of thepresent subject matter. For a distributed arrangement, the display 204and the input device 206 may be located at a point of sale device,kiosk, or other location, while the CPU 202 and memory 210 may belocated at a local or remote server. Many other possible arrangementsfor components of the core processing module 200 are possible and allare considered within the scope of the present subject matter. It shouldalso be understood that, though the database 112 is illustrated as aseparate component for purposes of example, the information storedwithin the database 112 may also/alternatively be stored within thememory 210 without departure from the scope of the present subjectmatter. Accordingly, the core processing module 200 may take many formsand may be associated with many platforms.

FIG. 3 through FIG. 4C described below represent example processes thatmay be executed by devices, such as the core processing module 200, toperform the automated social network activity modes associated with thepresent subject matter. Many other variations on the example processesare possible and all are considered within the scope of the presentsubject matter. The example processes may be performed by modules, suchas the activity mode processing module 216 and/or executed by the CPU202, associated with such devices. It should be noted that time outprocedures and other error control procedures are not illustrated withinthe example processes described below for ease of illustration purposes.However, it is understood that all such procedures are considered to bewithin the scope of the present subject matter. Further, the describedprocesses may be combined, sequences of the processing described may bechanged, and additional processing may be added or removed withoutdeparture from the scope of the present subject matter.

FIG. 3 is a flow chart of an example of an implementation of a process300 for social network activity modes. At block 302, the process 300identifies, via a processor, a social network activity mode implementedusing social network activity rules that allow only social network postsof relevance to a particular activity of a user to be presented to theuser. At block 304, the process 300 applies the social network activitymode to a plurality of social network posts. At block 306, based uponapplying the social network activity mode to the plurality of socialnetwork posts, the process 300 both of: provides social network poststhat comply with the social network activity rules of the social networkactivity mode to the user; and blocks social network posts that do notcomply with the social network activity rules of the social networkactivity mode.

FIGS. 4A-4C illustrate a flow chart of an example of an implementationof a process 400 for implementing system-wide and user-defined socialnetwork activity modes. FIG. 4A illustrates initial processing withinthe process 400. The process 400 may be considered a per-user processthat operates to suggest and activate system-wide and/or user-definedavailable social network activity modes. The process 400 may beinitiated at a user login to a social network, or may be periodically orroutinely initiated to perform the processing described below.

At decision point 402, the process 400 begins higher-level iterativeprocessing by making a determination as to whether to perform anactivity mode check to determine which social network activity mode(s)to suggest and/or activate for the respective social network user.Processing responsive to an affirmative determination at decision point402 will be deferred and described in more detail below to continue thepresent description of the higher-level iterative processing within theprocess 400.

As such, in response to determining not to perform an activity modecheck to determine which social network activity mode(s) to suggestand/or activate for the respective social network user at decision point402, the process 400 makes a determination at decision point 404 as towhether a request from the user to customize an activity mode has beendetected. As described above, activity mode templates may be providedand customized by a user. Alternatively, users may create activity modeprocessing rules by entry of activity rule syntax formatted forprocessing by the activity rules engine. Again, processing responsive toan affirmative determination at decision point 404 will be deferred anddescribed in more detail below to continue the present description ofthe higher-level iterative processing within the process 400.

As such, in response to determining that a request from the user tocustomize an activity mode has not been detected at decision point 404,the process 400 makes a determination at decision point 406 as towhether to process content streams within the social network usingsocial network activity modes. Processing of content streams within thesocial network using social network activity modes may be performed on ascheduled or routine basis, responsive to detection of a user opening orusing an application (e.g., calendar, GPS, and email, etc.), responsiveto detection of a user reading certain types of content within a socialnetwork, and responsive to other indicia as appropriate for a givenimplementation. Additionally, as described above, where a user isdetected to be utilizing a particular application, a user is detected tobe at a particular location (e.g., the beach), or a configured calendarentry is detected (e.g., business meeting), processing of social networkcontent streams may be programmatically changed based upon changes tosocial network activity modes appropriate for the respective detectedevent. As with the other higher-level iterative determinations describedabove, processing responsive to an affirmative determination at decisionpoint 406 will be deferred and described in more detail below tocontinue the present description of the higher-level iterativeprocessing within the process 400.

In response to a determination at decision point 406 not to processcontent streams within the social network using social network activitymodes, the process 400 returns to decision point 402 and iterates asdescribed above. Returning to the description of decision point 402, inresponse to determining to perform an activity mode check to determinewhich social network activity mode(s) to suggest and/or activate for therespective social network user, the process 400 retrieves user socialnetwork activity information that specifies the user's social networkactivities at block 408. The user social network activity informationmay specify types of social network content the user is reading, typesof communications, and other forms of user social network activities.The user social network activity information may be used to suggestand/or activate social network activity modes to process and filtersocial network content streams. At block 410, the process 400 loads anysystem-wide activity modes available to the user.

At block 412, the process 400 makes a determination as to whether anysocial network activity modes have been defined and configured by theuser. In response to determining that at least one user-defined activitymode has been configured by the user, the process 400 loads theuser-defined activity mode(s) at block 414. In response to loading theuser-defined activity mode(s) at block 414, or in response todetermining that there are no user-defined activity modes configured bythe user at decision point 412, the process 400 determines activity modeenablement criteria for each loaded activity mode at block 416. Theprocess 400 may determine under what circumstances the loaded activitymodes are to be enabled/activated. For example, where a social networkuser spends a lot of time reading sports feeds, the process 400 mayenable a “sports” activity mode. As such, the process 400 correlatesactivity modes and activity mode enablement criteria with a user'sactivities within a social network.

At block 418, the process 400 compares the user social network activityinformation with the determined activity mode enablement criteria foreach loaded activity mode. At decision point 420, the process 400 makesa determination as to whether any activity mode match has been detectedbased upon the comparison of the user social network activityinformation with the determined activity mode enablement criteria foreach loaded activity mode. An activity mode match may be based uponsatisfaction of any of the activity mode enablement criteria for anyloaded activity mode by the user's social network activities representedwithin the user social network activity information. In response todetermining at decision point 420 that an activity mode match has notbeen detected, the process 400 returns to decision point 402 anditerates as described above.

In response to determining at decision point 420 that an activity modematch has been detected, the process 400 suggests one or more matchingactivity modes to the user at block 422. At decision point 424, theprocess 400 makes a determination as to whether the user has acceptedany suggested activity mode(s).

In response to determining at decision point 424 that the user hasaccepted one or more suggested activity modes, the process 400 enables(activates) the accepted activity mode(s) at block 426. In response toenabling (activating) the accepted activity mode(s) at block 426, or inresponse to determining that the user has not accepted one or moresuggested activity modes at decision point 424, the process 400 returnsto decision point 402 and iterates as described above.

Returning to the description of decision point 404, in response todetermining that a request from the user to customize an activity modehas been detected, the process 400 transitions to the processing shownand described in association with FIG. 4B.

FIG. 4B illustrates additional processing associated with the process400 for implementing system-wide and user-defined social networkactivity modes. At block 428, the process 400 retrieves a configuredactivity mode template. At block 430, the process 400 provides anactivity mode template editing user interface (UI) with activity rulecustomization options associated with the activity mode template to theuser. The user may select values associated with the activity rulecustomization options to edit and finalize user-defined activity modes.The process 400 detects user selection of one or more activity rulecustomization options.

At decision point 432, the process 400 makes a determination as towhether activity mode editing has been completed, such as by entry of anindication from the user. In response to determining that activity modeediting has been completed, the process 400 stores the createduser-defined activity mode and associates the user-defined activity modewith the user at block 434. The created user-defined activity mode maybe stored, for example, within the database 112 or otherwise asappropriate for a given implementation.

At block 436, the process 400 prompts the user regarding sharing of auser-defined activity mode, including the created user-defined activitymode, within the social network. At decision point 438, the process 400makes a determination as to whether the user has indicated to share theone or more user-defined defined activity modes within the socialnetwork. The indication to share one or more user-defined activity modemay be granular and may include an indication to share a particularuser-defined activity mode with specific social network contacts or toshare the user-defined activity mode by global publication within thesocial network. In response to determining that the user has indicatedto share one or more user-defined defined activity modes within thesocial network, the process 400 shares the specified user-definedactivity mode(s) within the social network at block 440 to make theuser-defined activity mode available for loading and use by thespecified other social network users (e.g., specific contacts orglobally). In response to sharing the user-defined activity mode(s)within the social network as specified by the user at block 440, or inresponse to determining that the user has indicated not to share anyuser-defined defined activity modes within the social network atdecision point 438, the process 400 returns to the processing describedabove in association with FIG. 4A at decision point 402 and iterates asdescribed above.

Returning to the description of decision point 406 within FIG. 4A, inresponse to determining to process content streams within the socialnetwork using social network activity modes, the process 400 transitionsto the processing shown and described in association with FIG. 4C.

FIG. 4C illustrates further additional processing associated with theprocess 400 for implementing system-wide and user-defined social networkactivity modes. At decision point 442, the process 400 makes adetermination as to whether any activity modes are enabled for therespective user. For example, the process 400 may perform a databaselookup, such as within the database 112, to retrieve social network userinformation that specifies enabled activity modes for the user. Asdescribed above, activity modes may be defined and selectively enabledto filter content based upon enabled activity modes. In response todetermining that no activity modes are enabled for the respective user,the process 400 returns to the processing described above in associationwith FIG. 4A at decision point 402 and iterates as described above. Assuch, where no activity modes are enabled, the social network mayprocess content normally (not shown).

Continuing with the description of decision point 442 within FIG. 4C, inresponse to determining that at least one activity mode is enabled forthe respective user, the process 400 adds available social networkcontent to a stream data set for the user at block 444. At block 446,the process 400 loads one or more activity rule(s) configured within theenabled activity mode(s). The process 400 may load the activity rule(s)configured within the enabled activity mode(s) from a database, such asthe database 112.

At block 448, the process 400 selects a social network content item fromthe stream data set to process using the loaded activity rule(s). Atblock 450, the process 400 processes the social network content itemusing the activity rule(s). At decision point 452, the process 400 makesa determination as to whether to block (or deprioritize) the contentitem based upon the activity rule(s). In response to determining toblock (or deprioritize) the content item based upon the activityrule(s), the process 400 moves the content item from the stream data setto an activity-mode filtered data set at block 454. As such, the process400 may move the content item that does not comply with the activityrule(s) associated with the enabled activity mode(s) to a filtered dataset. In this way, the process 400 blocks (or deprioritizes) and/ordelays presentation of social network content items that are within theactivity-mode filtered data set, and may present to the user at a latertime the social network content items stored within the filtered dataset, such as responsive to detecting a request from the user to view thedelayed/filtered data set. Alternatively, for a deprioritizedimplementation, the social network content items that are within theactivity-mode filtered data set may be presented in a lower location ona post viewing page. The activity-mode filtered data set may be storedfor a configurable amount of time, or until the user views or otherwisedeletes the posts from their content stream.

In response to determining at decision point 452 not to block (ordeprioritize) the content item based upon the activity rule(s), theprocess 400 moves the content item from the stream data set to anactivity-mode viewable data set at block 456. As such, the process 400may add the content item that complies with the activity rule(s)associated with the enabled activity mode(s) to a viewable data set thatmay be provided to the user for viewing while the respective activitymode(s) are enabled.

In response to moving the content item either to the activity-modefiltered data set at block 454 or to the activity-mode viewable data setat block 456, the process 400 makes a determination as to whether thereis another content item remaining in the stream data set at decisionpoint 458. In response to determining that there is another content itemremaining in the stream data set, the process 400 returns to block 448and iterates as described above. In response to determining that noother content items remain in the stream data set, the process 400provides the activity-mode viewable data set to the user at block 460.The process 400 returns to the processing described above in associationwith FIG. 4A at decision point 402 and iterates as described above.

As such, the process 400 analyzes activities of a social network userand makes suggestions of social network activity modes that may be ofinterest to a social network user. The process 400 also allows users tocreate user-defined activity modes by creating activity rules thatfilter content during user-specified activities. The process 400additionally processes social network content streams using one or moreactivity modes defined for a particular user that are selected basedupon the user's current activities.

As described above in association with FIG. 1 through FIG. 4C, theexample systems and processes provide social network activity modes.Many other variations and additional activities associated with socialnetwork activity modes are possible and all are considered within thescope of the present subject matter.

Those skilled in the art will recognize, upon consideration of the aboveteachings, that certain of the above examples are based upon use of aprogrammed processor, such as the CPU 202. However, the invention is notlimited to such example embodiments, since other embodiments could beimplemented using hardware component equivalents such as special purposehardware and/or dedicated processors. Similarly, general purposecomputers, microprocessor based computers, micro-controllers, opticalcomputers, analog computers, dedicated processors, application specificcircuits and/or dedicated hard wired logic may be used to constructalternative equivalent embodiments.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a,” “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art basedupon the teachings herein without departing from the scope and spirit ofthe invention. The subject matter was described to explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method, comprising: identifying, via aprocessor, a social network activity mode implemented using socialnetwork activity rules that allow only social network posts of relevanceto a particular activity of a user to be presented to the user; applyingthe social network activity mode to a plurality of social network posts;and based upon applying the social network activity mode to theplurality of social network posts, both of: providing social networkposts that comply with the social network activity rules of the socialnetwork activity mode to the user; and blocking social network poststhat do not comply with the social network activity rules of the socialnetwork activity mode.
 2. The method of claim 1, further comprising:detecting a request from the user to view the blocked social networkposts that do not comply with the social network activity rules of thesocial network activity mode; and providing the blocked social networkposts to the user.
 3. The method of claim 1, where identifying, via theprocessor, the social network activity mode implemented using the socialnetwork activity rules that allow only social network posts of relevanceto the particular activity of the user to be presented to the usercomprises: retrieving user social network activity information thatspecifies the user's social network activities; correlating theretrieved user social network activity information with available socialnetwork activity modes and activity mode enablement criterion of eachavailable social network activity mode; and determining that a socialnetwork activity mode match has been detected based upon the correlationof the user social network activity information with the activity modeenablement criterion of each available social network activity mode. 4.The method of claim 3, where correlating the retrieved user socialnetwork activity information with the available social network activitymodes and the activity mode enablement criterion of each availablesocial network activity mode comprises: loading system-wide socialnetwork activity modes available to the user; loading at least oneuser-defined social network activity mode available to the user;determining activity mode enablement criterion of each loaded socialnetwork activity mode; and comparing the user social network activityinformation with the determined activity mode enablement criterion ofeach loaded social network activity mode.
 5. The method of claim 3,further comprising: suggesting at least one social network activity modeto the user determined to match based upon the correlation; determiningthat the user has accepted the at least one suggested social networkactivity mode; and enabling each accepted social network activity mode.6. The method of claim 1, further comprising: detecting a request fromthe user to create a new user-defined social network activity mode;providing a social network activity mode template editing user interfacethat comprises social network activity rule customization optionsassociated with a social network activity mode template to the user;detecting user selection of at least one social network activity rulecustomization option; storing the social network activity mode templatewith the user-selected at least one social network activity rulecustomization option as the new user-defined social network activitymode; and associating the new user-defined social network activity modewith the user within the social network.
 7. The method of claim 1,further comprising: prompting the user regarding sharing of the socialnetwork activity mode within the social network; detecting a userindication to share the social network activity mode with at least oneother social network user; and sharing the social network activity modewith the at least one other social network user via the social network.8. A system, comprising: a memory; a processor programmed to: identify,within the memory, a social network activity mode implemented usingsocial network activity rules that allow only social network posts ofrelevance to a particular activity of a user to be presented to theuser; apply the social network activity mode to a plurality of socialnetwork posts; and based upon applying the social network activity modeto the plurality of social network posts, both of: provide socialnetwork posts that comply with the social network activity rules of thesocial network activity mode to the user; and block social network poststhat do not comply with the social network activity rules of the socialnetwork activity mode.
 9. The system of claim 8, where the processor isfurther programmed to: detect a request from the user to view theblocked social network posts that do not comply with the social networkactivity rules of the social network activity mode; and provide theblocked social network posts to the user.
 10. The system of claim 8,where, in being programmed to identify, within the memory, the socialnetwork activity mode implemented using the social network activityrules that allow only social network posts of relevance to theparticular activity of the user to be presented to the user, theprocessor is programmed to: retrieve user social network activityinformation that specifies the user's social network activities;correlate the retrieved user social network activity information withavailable social network activity modes and activity mode enablementcriterion of each available social network activity mode; determine thata social network activity mode match has been detected based upon thecorrelation of the user social network activity information with theactivity mode enablement criterion of each available social networkactivity mode; suggest at least one social network activity mode to theuser determined to match based upon the correlation; determine that theuser has accepted the at least one suggested social network activitymode; and enable each accepted social network activity mode.
 11. Thesystem of claim 10, where, in being programmed to correlate theretrieved user social network activity information with the availablesocial network activity modes and the activity mode enablement criterionof each available social network activity mode, the processor isprogrammed to: load system-wide social network activity modes availableto the user; load at least one user-defined social network activity modeavailable to the user; determine activity mode enablement criterion ofeach loaded social network activity mode; and compare the user socialnetwork activity information with the determined activity modeenablement criterion of each loaded social network activity mode. 12.The system of claim 8, where the processor is further programmed to:detect a request from the user to create a new user-defined socialnetwork activity mode; provide a social network activity mode templateediting user interface that comprises social network activity rulecustomization options associated with a social network activity modetemplate to the user; detect user selection of at least one socialnetwork activity rule customization option; store, within the memory,the social network activity mode template with the user-selected atleast one social network activity rule customization option as the newuser-defined social network activity mode; and associate the newuser-defined social network activity mode with the user within thesocial network.
 13. The system of claim 8, where the processor isfurther programmed to: prompt the user regarding sharing of the socialnetwork activity mode within the social network; detect a userindication to share the social network activity mode with at least oneother social network user; and share the social network activity modewith the at least one other social network user via the social network.14. A computer program product, comprising: a computer readable storagemedium having computer readable program code embodied therewith, wherethe computer readable program code when executed on a computer causesthe computer to: identify a social network activity mode implementedusing social network activity rules that allow only social network postsof relevance to a particular activity of a user to be presented to theuser; apply the social network activity mode to a plurality of socialnetwork posts; and based upon applying the social network activity modeto the plurality of social network posts, both of: provide socialnetwork posts that comply with the social network activity rules of thesocial network activity mode to the user; and block social network poststhat do not comply with the social network activity rules of the socialnetwork activity mode.
 15. The computer program product of claim 14,where the computer readable program code when executed on the computerfurther causes the computer to: detect a request from the user to viewthe blocked social network posts that do not comply with the socialnetwork activity rules of the social network activity mode; and providethe blocked social network posts to the user.
 16. The computer programproduct of claim 14, where, in causing the computer to identify thesocial network activity mode implemented using the social networkactivity rules that allow only social network posts of relevance to theparticular activity of the user to be presented to the user, thecomputer readable program code when executed on the computer causes thecomputer to: retrieve user social network activity information thatspecifies the user's social network activities; correlate the retrieveduser social network activity information with available social networkactivity modes and activity mode enablement criterion of each availablesocial network activity mode; and determine that a social networkactivity mode match has been detected based upon the correlation of theuser social network activity information with the activity modeenablement criterion of each available social network activity mode. 17.The computer program product of claim 16, where, in causing the computerto correlate the retrieved user social network activity information withthe available social network activity modes and the activity modeenablement criterion of each available social network activity mode, thecomputer readable program code when executed on the computer causes thecomputer to: load system-wide social network activity modes available tothe user; load at least one user-defined social network activity modeavailable to the user; determine activity mode enablement criterion ofeach loaded social network activity mode; and compare the user socialnetwork activity information with the determined activity modeenablement criterion of each loaded social network activity mode. 18.The computer program product of claim 16, where the computer readableprogram code when executed on the computer further causes the computerto: suggest at least one social network activity mode to the userdetermined to match based upon the correlation; determine that the userhas accepted the at least one suggested social network activity mode;and enable each accepted social network activity mode.
 19. The computerprogram product of claim 14, where the computer readable program codewhen executed on the computer further causes the computer to: detect arequest from the user to create a new user-defined social networkactivity mode; provide a social network activity mode template editinguser interface that comprises social network activity rule customizationoptions associated with a social network activity mode template to theuser; detect user selection of at least one social network activity rulecustomization option; store the social network activity mode templatewith the user-selected at least one social network activity rulecustomization option as the new user-defined social network activitymode; and associate the new user-defined social network activity modewith the user within the social network.
 20. The computer programproduct of claim 14, where the computer readable program code whenexecuted on the computer further causes the computer to: prompt the userregarding sharing of the social network activity mode within the socialnetwork; detect a user indication to share the social network activitymode with at least one other social network user; and share the socialnetwork activity mode with the at least one other social network uservia the social network.